In recent years, computer and server platforms have grown increasingly complex. Larger platforms often include multiple-root bridge servers and a sophisticated platform fabric. Such platforms include a large number of devices (e.g., chips, buses, peripheral component interconnect (PCI) devices, memory controller hubs (MCH), input/output (I/O) controller hubs (ICH), expansion cards, and processors) and therefore pre-boot initialization of such platforms can be lengthy. For example, pre-boot initialization can now easily consume several tens of seconds at platform startup.
Pre-boot initialization involves the discovery, identification, sorting, address assignment, configuration space programming, running of option read only memories (ROMs), firmware/basic input/output system (BIOS) configuration, etc. of platform devices. Typically, during this pre-boot initialization time the platform has insufficient system state information to execute a video option ROM and display a splash screen, thereby leaving a system display device dark or blank. This darkness, which may last for several tens of seconds, may give a user an impression of a broken platform. Further, lengthy pre-boot initialization makes an achievement of 5-nines up-time of server platforms more difficult because more time is spent out-of-service.